package com.xinnet.mms.allot.service;

import java.sql.SQLException;
import java.util.List;

import org.springframework.stereotype.Service;

import com.xinnet.core.utils.page.PageView;
import com.xinnet.mms.entity.CustomAllotConfig;
import com.xinnet.mms.entity.CustomAllotConfigDept;
import com.xinnet.mms.entity.Dept;

@Service
public interface CustomAllotConfigService {
	/**
	 * 
	 * 功能描述：通过部门id查询该部门的分配轮循设置
	 *
	 * @param deptnon
	 * @return
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年1月22日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public List<CustomAllotConfig> showAllotConfigByDeptno(String deptno) throws SQLException;
	/**
	 * 
	 * 功能描述：显示客户分配设置页面部门 以及所属分公司
	 *
	 * @return
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年1月22日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public PageView<CustomAllotConfigDept> queryAllotConfig(PageView<CustomAllotConfigDept> pageView) throws SQLException;
	/**
	 * 
	 * 功能描述：用组织结构标识和上级组织结构标识查询分配设置页面部门以及所属分公司
	 *
	 * @param configDept
	 * @return
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年1月22日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public PageView<CustomAllotConfigDept> queryAllotConfig(PageView<CustomAllotConfigDept> pageView,CustomAllotConfigDept configDept) throws SQLException;
	/**
	 * 
	 * 功能描述：修改部门分配轮循设置
	 *
	 * @param allotConfig
	 * @param week
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年1月22日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public void updateAllotConfig(CustomAllotConfig allotConfig) throws SQLException;
	/**
	 * 
	 * 功能描述：根据部门名称过滤查询分配设置列表
	 *
	 * @param dname
	 * @return
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年2月11日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public PageView<CustomAllotConfigDept> queryAllotDeptByDname(PageView<CustomAllotConfigDept> pageView,Dept dept) throws SQLException;
	/**
	 * 
	 * 功能描述：批量修改部门分配轮循设置
	 *
	 * @param deptnos
	 * @param dates
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年1月22日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public void updateAllotConfigBatch(String deptnos,String dates) throws SQLException;
	/**
	 * 
	 * 功能描述：单独修改部门分配轮循设置
	 *
	 * @param deptno
	 * @param startTime
	 * @param endTime
	 * @param poll
	 * @param workDate
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年2月13日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public void updateAllotConfigAlong(String deptno,String startTime,String endTime,String poll,String workDate) throws SQLException;
	/**
	 * 
	 * 功能描述：添加部门时增加初始化客户分配规则
	 *
	 * @throws SQLException
	 *
	 * @author 王湛智[wangzhanzhi@xinnet.com]
	 *
	 * @since 2014年3月4日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public void addDeptDsitributRule(String deptno) throws SQLException;
	
	/**
	 * 获取客户分配规则
	 * @param deptIdStr
	 * @return
	 */
	public List<CustomAllotConfigDept> getCustomDsitributRuleByDeptIdStr(String deptIdStr);
	/**
	 * 获取客户分配规则
	 * @param dname
	 * @return
	 */
	public List<CustomAllotConfigDept> getCustomDsitributRuleByDname(String dname);
}
